<?php
/* 
 * ********* CVS HEADER ********* 
 * 
 * $RCSfile: emailtype.php,v $ 
 * $Date: 2005/08/31 10:13:46 $ 
 * $Revision: 1.2 $ 
 * 
 * ********* CVS HEADER ********* 
 */
/**
  * Classe EmailType 
  * Developpee par Rodrigue LE GALL
  * sous licence GPL
  * Objectif : Envoyer des messages types contenus 
  *  dans la table rportal_email_type
  */
  
/**
  * Les mots cles pouvant etre remplace dans le titre et le corps du message sont:
  *  {nom} : nom de la personne cible
  *  {prenom} : prenom de la personne cible
  *  {email} : email de la personne cible
  *  {login} : login de la personne cible
  *  {passord} : mot de passe temporaire de la personne cible
  *  {autreX} : X=[0,9] , zone ou l 'on peut mettre du texte   
  */
require_once('module/TPLN/TPLN.php');

class EmailType
{
	var $myID = 0;
	var $myTitre = '';
	var $myMessage = '';
	
	var $autre = array(0 => '',1 => '',2 => '',3 => '',4 => '',5 => '',6 => '',7 => '',8 => '',9 => '');
	var $headers = '';
	
	var $myContactnom ='';
	var $myContactprenom ='';
	var $myContactemail ='';
	
	var $currentTitre = '';
	var $currentMessage = '';
	//Constructeur : $ID correspond a l'id du message type dans la base de donnee
	// renvoie null si l'ID n'existe pas
	function EmailType($ID=1){
		$query = "SELECT id,titre,message FROM rportal_email_type";
		$query.= " WHERE id='$ID'";
		$result=rportalrequete($query) or rportalerreur($query,"?op=");
		if(rportalnbresult($result)!=1){
		    return null;
		}
		$email=rportalligne($result);
		$this->myId = $email['id'];
		$this->myTitre = $email['titre'];
		$this->myMessage = $email['message'];
	}	
	
	//setFrom : permet de definir les coordonnees de l'envoyeur
	function setFrom($myname,$myemail){
		$this->headers = "MIME-Version: 1.0\n";
  		$this->headers .= "Content-type: text/plain; charset=iso-8859-1\n";
  		$this->headers .= "X-Priority: 1\n";
  		$this->headers .= "X-MSMail-Priority: High\n";
  		$this->headers .= "X-Mailer: php\n";
  		$this->headers .= "From: \"".$myname."\" <".$myemail.">\n";
  		$this->headers .= "Reply-To: ".$myemail."\n";
  	}
	
	//setAutreX : permet de definir les zones complementaires
	function setAutreX($n=0,$mess=''){
		if($n>=0 && $n<10){
			$this->autre[$n] = $mess;	
		}
	}
	function setTo($contactemail,$contactlogin='',$contactnom='',$contactprenom='',$contactpassword=''){
		$TPLNt = new TPLN();
		$TPLNm = new TPLN();
		$TPLNt->CreateVirtualTemplate($this->myTitre);
		$TPLNm->CreateVirtualTemplate($this->myMessage);
		if($TPLNt->ItemExists("nom")) $TPLNt->Parse("nom",$contactnom);
		if($TPLNm->ItemExists("nom")) $TPLNm->Parse("nom",$contactnom);
		if($TPLNt->ItemExists("prenom")) $TPLNt->Parse("prenom",$contactprenom);
		if($TPLNm->ItemExists("prenom")) $TPLNm->Parse("prenom",$contactprenom);
		if($TPLNt->ItemExists("login")) $TPLNt->Parse("login",$contactlogin);
		if($TPLNm->ItemExists("login")) $TPLNm->Parse("login",$contactlogin);
		if($TPLNt->ItemExists("password")) $TPLNt->Parse("password",$contactpassword);
		if($TPLNm->ItemExists("password")) $TPLNm->Parse("password",$contactpassword);
		if($TPLNt->ItemExists("email")) $TPLNt->Parse("email",$contactemail);
		if($TPLNm->ItemExists("email")) $TPLNm->Parse("email",$contactemail);
		for($i=0;$i<10;$i++){
			if($TPLNt->ItemExists("autre".$i)) $TPLNt->Parse("autre".$i,$this->autre[$i]);
			if($TPLNm->ItemExists("autre".$i)) $TPLNm->Parse("autre".$i,$this->autre[$i]);	
		}
		$this->currentTitre = $TPLNt->Output();
		$this->currentMessage = $TPLNm->Output();
		$this->myContactnom =$contactnom;
		$this->myContactprenom =$contactprenom;
		$this->myContactemail =$contactemail;
	}
	//envoie l'email
	function sendEmail(){
		return(mail("\"".$this->myContactnom." ".$this->myContactprenom."\" <".$this->myContactemail.">", $this->currentTitre, $this->currentMessage, $this->headers));
	}
	
	function getTitre(){
		return $this->currentTitre;	
	}
	
	function getMessage(){
		return $this->currentMessage;	
	}
}
?>